﻿using SteamFluentAPI.Infrastructure.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SteamFluentAPI.Infrastructure
{
    public class SteamUserStats : SteamInterface
    {
        /// <summary>
        /// Statistics showing how much of the player base have unlocked various achievements.
        /// </summary>
        [SteamMethod("v0002")]
        public GetGlobalAchievementPercentagesForApp GetGlobalAchievementPercentagesForApp { get { return new GetGlobalAchievementPercentagesForApp(); } }
        /// <summary>
        /// (NOT IMPLEMENTED)
        /// </summary>
        [NotImplemented]
        public GetGlobalStatsForGame GetGlobalStatsForGame { get { return new GetGlobalStatsForGame(); } }

        /// <summary>
        /// Returns the current number of players for an app.
        /// </summary>
        [SteamMethod("v1")]
        public GetNumberOfCurrentPlayers GetNumberOfCurrentPlayers { get { return new GetNumberOfCurrentPlayers(); } }

        /// <summary>
        /// Game achievements
        /// </summary>
        [SteamMethod("v1")]
        public GetPlayerAchievements GetPlayerAchievements { get { return new GetPlayerAchievements(); } }

        /// <summary>
        /// (TODO)
        /// </summary>
        [SteamMethod("v2")]
        public GetSchemaForGame GetSchemaForGame { get { return new GetSchemaForGame(); } }

        /// <summary>
        /// (TODO)
        /// </summary>
        [SteamMethod("v2")]
        public GetUserStatsForGame GetUserStatsForGame { get { return new GetUserStatsForGame(); } }
    }

    public class GetGlobalAchievementPercentagesForApp : SteamGameMethod
    {

    }

    public class GetGlobalStatsForGame : SteamMethod
    {

    }

    public class GetNumberOfCurrentPlayers : SteamAppMethod
    {

    }

    public class GetPlayerAchievements : SteamIDandAppMethod
    {

    }

    public class GetSchemaForGame : SteamAppMethod
    {

    }

    public class GetUserStatsForGame : SteamIDandAppMethod
    {

    }
}
